package thss.mro.util;

import java.util.HashMap;

import thss.mro.entity.template.ProtocolTemplate;

/**
 * 定义了所有协议的协议结构（实现：在构造器中为端口映射协议名、为协议名映射协议头部模板）
 * @author zhuangxy
 * 
 */
public class Protocol {

	private static HashMap<Integer, String> portMap;//key-端口 value-协议名
	
	private static HashMap<String, ProtocolTemplate> protocols;//key-协议名 value-协议头部模板
	
	static {
		new Protocol();
	}
	
	public Protocol() {
		//初始化端口映射
		portMap = new HashMap<Integer, String>();
		portMap.put(Constants.PROTOCOL_PORT_SCP, Constants.PROTOCOL_NAME_SCP); // 端口1：三一
		portMap.put(Constants.PROTOCOL_PORT_SCPCELL, Constants.PROTOCOL_NAME_SCPCELL); // 端口2：三一信元
		portMap.put(Constants.PROTOCOL_PORT_AIRCHINA, Constants.PROTOCOL_NAME_AIRCHINA); // 端口3：国航,现暂无用
		//初始化协议头部模板
		protocols = new HashMap<String, ProtocolTemplate>();
		protocols.put(Constants.PROTOCOL_NAME_SCP, 
				Template.getTemplate(Constants.TEMPLATE_ID_SCP_HEAD));
		protocols.put(Constants.PROTOCOL_NAME_SCPCELL, 
				Template.getTemplate(Constants.TEMPLATE_ID_SCPCELL_HEAD));
	}
	
	public static ProtocolTemplate getHeadTpl(String protocolName){
		return protocols.get(protocolName);
	}
	
	public static String getProtocolName(int port){
		return portMap.get(port);
	}
	
}
